package com.sky.service;

import com.sky.dto.NoticeDTO;
import com.sky.dto.NoticePageQueryDTO;
import com.sky.result.PageResult;
import com.sky.vo.NoticeVO;

public interface NoticeService {
    /**
     * 新增公告
     * @param noticeDTO
     */
    void save(NoticeDTO noticeDTO);

    /**
     * 分页查询公告
     * @param noticePageQueryDTO
     * @return
     */
    PageResult pageQuery(NoticePageQueryDTO noticePageQueryDTO);

    /**
     * 根据id查询公告
     * @param id
     * @return
     */
    NoticeVO getById(Long id);

    /**
     * 修改公告
     * @param noticeDTO
     */
    void update(NoticeDTO noticeDTO);

    /**
     * 启用/禁用公告
     * @param id
     * @param status
     */
    void updateStatus(Long id, Integer status);

    /**
     * 获取最新公告
     * @return
     */
    NoticeVO getLatestNotice();

    /**
     * 用户端分页查询
     * @param page
     * @param pageSize
     * @return
     */
    PageResult pageQueryForUser(Integer page, Integer pageSize);

    /**
     * 用户端根据ID查询
     * @param id
     * @return
     */
    NoticeVO getByIdForUser(Long id);


    void deleteNotice(Long id);
}